/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ssp.database;

import ssp.ResourceManager;
import ssp.SimulationManager;

/**
 * データベースを管理するクラス
 * @author yamazaki
 */
public final class DatabaseManager implements ResourceManager {
    
    /**
     * シミュレーション中で唯一のクラスインスタンス
     */
    private static DatabaseManager INSTANCE = new DatabaseManager();
    
    /**
     * ネットワークマップ
     */
    private NetworkMap networkMap;
    
    /**
     * サービスマップ
     */
    private ServiceMap serviceMap;
    
    /**
     * コンストラクタ<br>
     * シングルトンのためprivateアクセス
     */
    private DatabaseManager() {
        init();
        SimulationManager.register(this);
    }

    @Override
    public final void init() {
        networkMap = new NetworkMap();
        serviceMap = new ServiceMap();
    }

    /**
     * @return the INSTANCE
     */
    public static DatabaseManager getINSTANCE() {
        return INSTANCE;
    }

    /**
     * @return the NetworkMap
     */
    public NetworkMap getNetworkMap() {
        return this.networkMap;
    }
    
    /**
     * @return the ServiceMap
     */
    public ServiceMap getServiceMap() {
        return this.serviceMap;
    }
    
}
